void npc(Player @player, NPC @npc) {
	int state = npc.getState();
	int map = player.getMap().getID();
	int type = npc.getSelected();
	npc.setVariable("type", type);
	if(map == 103000100){
		if(state == 0){
			npc.addText("Hello. Would you like to buy a ticket for the subway? #b\r\n#L0#New Leaf City of Masteria#l#k");
			npc.sendSimple();
		}
		if(state == 1){
			if(type == 0){
				npc.addText("The ride to New Leaf City of Masteria takes off every 10 minutes, beginning on the hour, and it'll cost you #b5000 mesos#k. Are you sure you want to purchase #bSubway Ticket to NLC (Regular)#k?");
				npc.sendYesNo();
			}
		}
		if(state == 2){
			if(npc.getSelected() == YES){
				if(player.getMesos() >= 5000 && player.checkSlot(ETC)){
					player.giveItem(4031711, 1);
					player.giveMesos(-5000);
					npc.end();
				}
				else{
					npc.addText("Are you sure you have #b5000 mesos#k? If so, then I urge you to check your etc. inventory, and see if it's full or not.");
					npc.sendNext();
					npc.end();
				}
			}
			else{
				npc.addText("You must have some business to take care of here, right?");
				npc.sendNext();
				npc.end();
			}
		}
	}
	else if(map == 600010001){
		if(state == 0){
			npc.addText("Hello. Would you like to buy a ticket for the subway? #b\r\n#L0#Kerning City of Victoria Island#l#k");
			npc.sendSimple();
		}
		if(state == 1){
			if(type == 0){
				npc.addText("The ride to Kerning City of Victoria Island takes off every 10 minutes, beginning on the hour, and it'll cost you #b5000 mesos#k. Are you sure you want to purchase #bSubway Ticket to Kerning City (Regular)#k?");
				npc.sendYesNo();
			}
		}
		if(state == 2){
			if(npc.getSelected() == YES){
				if(player.getMesos() >= 5000 && player.checkSlot(ETC)){
					player.giveItem(4031713, 1);
					player.giveMesos(-5000);
					npc.end();
				}
				else{
					npc.addText("Are you sure you have #b5000 mesos#k? If so, then I urge you to check your etc. inventory, and see if it's full or not.");
					npc.sendNext();
					npc.end();
				}
			}
			else{
				npc.addText("You must have some business to take care of here, right?");
				npc.sendNext();
				npc.end();
			}
		}
	}
	else if(map == 600010004){
		if(state == 0){
			npc.addText("Do you want to go back to Kerning City subway station now?");
			npc.sendYesNo();
		}
		else if(state == 1){
			if(npc.getSelected() == YES){
				player.changeMap(103000100);
				npc.end();
			}
			else{
				npc.addText("Okay, Please wait~!");
				npc.sendNext();
				npc.end();
			}
		}
	}
	else{
		if(state == 0){
			npc.addText("Do you want to go back to New Leaf City subway station now?");
			npc.sendYesNo();
		}
		else if(state == 1){
			if(npc.getSelected() == YES){
				player.changeMap(600010001);
				npc.end();
			}
			else{
				npc.addText("Okay, Please wait~!");
				npc.sendNext();
				npc.end();
			}
		}
	}
}